package ar.com.vates.polimorfismo1;

import ar.com.vates.util.In;

public class Ejercicio1 {

	private static Centralita centralita;

	public static void main(String args[]) {

		centralita = new Centralita();
		int opcion = -1;

		do {

			System.out
					.print("\n1 - Llamada local, 2-Llamada provincial, 0-Salir: ");
			opcion = In.readInt();

			switch (opcion) {

			case 0:
				break;

			case 1:
				LlamadaLocal ll = nuevaLlamadaLocal();
				centralita.registrarLlamada(ll);
				break;

			case 2:
				LlamadaProvincial lp = nuevaLlamadaProvincial();
				centralita.registrarLlamada(lp);
				break;

			default:
				System.out.println("Opcion incorrecta");
			}

		} while (opcion != 0);

		System.out.println("\n===========RESULTADOS===========");

		System.out.println("Cantidad de llamadas: "
				+ centralita.getTotalLlamadas());
		System.out.println("Facturacion total: "
				+ centralita.getTotalFacturacion());
	}

	public static LlamadaLocal nuevaLlamadaLocal() {

		System.out.print("Ingrese numero de origen: ");
		String numOrigen = In.readLine();

		System.out.print("Ingrese numero de destino: ");
		String numDestino = In.readLine();

		System.out.print("Ingrese duracion: ");
		double duracion = In.readDouble();

		LlamadaLocal ll = new LlamadaLocal(numOrigen, numDestino, duracion);

		return ll;
	}

	public static LlamadaProvincial nuevaLlamadaProvincial() {

		System.out.print("Ingrese numero de origen: ");
		String numOrigen = In.readLine();

		System.out.print("Ingrese numero de destino: ");
		String numDestino = In.readLine();

		System.out.print("Ingrese duracion: ");
		double duracion = In.readDouble();

		int franja = 1;
		do {
			System.out.print("Ingrese franja: ");
			franja = In.readInt();
		} while (franja < 0 || franja > 4); // solo valores 1, 2 y 3

		LlamadaProvincial lp = new LlamadaProvincial(numOrigen, numDestino,
				duracion, franja);

		return lp;
	}
}
